﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data.Common;
using EnEntidad;
using System.Data;

namespace DaDatos
{
    public class DaAnexo
    {
        public Int64 MantenimientoAnexo(EnAnexo objEnAnexo, Int16 intControlador)
        {

            Int64 intCodAnexo;

            Database db = DatabaseFactory.CreateDatabase();
            SqlCommand cmd = (SqlCommand)db.GetStoredProcCommand("sp_MantenimientoAnexo");
            cmd.CommandTimeout = Convert.ToInt32(DuracionConexion.corta);
            Helper.AddParam(ref cmd, "@nombreDescriptivo", SqlDbType.VarChar, 255, ParameterDirection.Input, objEnAnexo.nombreDescriptivo);
            Helper.AddParam(ref cmd, "@nombreArchivo", SqlDbType.VarChar, 255, ParameterDirection.Input, objEnAnexo.nombreArchivo);
            Helper.AddParam(ref cmd, "@archivoFisico", SqlDbType.VarChar, 255, ParameterDirection.Input, objEnAnexo.archivoFisico);
            Helper.AddParam(ref cmd, "@FQ_TipoAnexo_ID", SqlDbType.Int, ParameterDirection.Input, objEnAnexo.FQ_TipoAnexo_ID);
            Helper.AddParam(ref cmd, "@FQ_Solicitud_ID", SqlDbType.Int, ParameterDirection.Input, objEnAnexo.FQ_Solicitud_ID);
            Helper.AddParam(ref cmd, "@controlador", SqlDbType.Int, ParameterDirection.Input, intControlador);
            //cmd.Parameters.Add("@num", SqlDbType.Int).Direction = ParameterDirection.Output;
            db.ExecuteNonQuery(cmd);
            //cmd.Parameters.Clear();

            intCodAnexo = objEnAnexo.FQ_Solicitud_ID;


            return intCodAnexo;
        }

        public List<EnAnexo> ListarAnexo(Int64 intCodSolicitud)
        {
            log4net.ILog logger = log4net.LogManager.GetLogger("File");
            Database db = DatabaseFactory.CreateDatabase();
            SqlCommand cmd = (SqlCommand)db.GetStoredProcCommand("sp_ListarAnexo");
            cmd.CommandTimeout = Convert.ToInt32(DuracionConexion.corta);
            Helper.AddParam(ref cmd, "@FQ_Solicitud_ID", SqlDbType.Int, ParameterDirection.Input, intCodSolicitud);
            List<EnAnexo> lstEnAnexo = new List<EnAnexo>();
            IDataReader dr = null;

            try
            {

                dr = db.ExecuteReader(cmd);
                while (dr.Read())
                {
                    lstEnAnexo.Add(new EnAnexo()
                    {
                        archivoFisico = dr.GetString(dr.GetOrdinal("archivoFisico")),
                        FQ_TipoAnexo_ID = dr.GetInt32(dr.GetOrdinal("FQ_TipoAnexo_ID")),
                    });
                }
                dr.Close();
            }
            catch (Exception ex)
            {
                logger.Error("Error " + ex.Message + "Metodo :ListarBalotarioEntrevista");

            }
            finally
            {
                if (!dr.IsClosed) dr.Close();
            }

            return lstEnAnexo;

        }

    }
}
